/**
 * 配置子系统调用接口
 */

import request from '@/utils/request'

/**
 * GET 获取字典
 * ITEM_TYPE     事项类别
 * ITEM_GRADE    事项级别
 * ITEM_LEVEL    事项处理层级
 * CHECK_STATUS  审核状态
 * FIND_WAY      发现方式
 * FIND_UNIT     发现部门
 * RULES_LEVEL   协同程度
 * RULES_ROLE    协同角色
 * BELONG_LINE   所属条线
 * @returns {Promise<Result>}
 */
export function getDictByType (codeType) {
  return request({
    url: '/sys/codes',
    method: 'get',
    params: { codeType }
  })
}

/**
 * GET 根据codeValue值获取获取字典对应的中文值
 * @returns {Promise<Result>}
 */
export function getCodeNameByTypeValue (codeType, codeValue) {
  return request({
    url: '/sys/codes',
    method: 'get',
    params: { codeType }
  }).then((success, data) => {
    if (success) {
      const name = data.records.find(record => record.codeValue === codeValue)?.codeName || '--'
      return Promise.resolve(name)
    }
  })
}

/**
 * GET 固定萧山为pid获取下属局级部门数据
 * @returns {Promise<Result>}
 */
export function getDeptmentList () {
  return request({
    url: '/sys/deptment/findNextChildNodeTree',
    method: 'get',
    params: {
      current: 1,
      size: 1000,
      groupId: process.env.VUE_APP_GROUP_PID
    }
  })
}

/**
 * GET 获取全部部门
 * @returns {Promise<Result>}
 */
export function getDeptmentListAll () {
  return request({
    url: '/sys/deptment/findNextChildNodeTreeAll',
    method: 'get',
    params: {
      current: 1,
      size: 1000
    }
  })
}

/**
 * GET 获取全部部门
 * @returns {Promise<Result>}
 */
export function getCategoryListAll (params) {
  return request({
    url: '/onm/event/type/info/uphold/getAllCategory',
    method: 'get',
    params
  })
}

/**
 * GET 根据groupId查询部门
 * @returns {Promise<Result>}
 */
export function getDeptByGroupId (params) {
  return request({
    url: '/sys/deptment/getDeptByGroupId',
    method: 'get',
    params
  })
}

// 根据行政区划判断是否是最高的行政区域
export function isHighestArea (params) {
  return request({
    url: '/onm/event/type/sys/district/isHighestArea',
    method: 'get',
    params
  })
}

// 根据场景name查询list
export function getSceneList (params) {
  return request({
    url: '/onm/event/type/item/scene/getSceneList',
    method: 'get',
    params
  })
}
